package com.dinzeer.legendreliclib.lib.util.impl;

import net.minecraft.world.entity.player.Player;

/**
 * 特别计数器管理器接口，定义特别计数器操作的基本方法。
 * <p>
 * 该接口为特别计数器管理器提供了统一的操作规范，包括增加、获取和重置特别计数器值等功能。
 */
public interface IStackManager {
    /**
     * 增加特别计数器值。
     *
     * @param player 玩家实体
     * @param amount 增加的特别计数器数量
     */
    void addStacks(Player player, int amount);

    /**
     * 获取主手当前特别计数器值。
     *
     * @param player 玩家实体
     * @return 主手当前特别计数器值
     */
    int getCurrentStacks(Player player);

    /**
     * 获取副手当前特别计数器值。
     *
     * @param player 玩家实体
     * @return 副手当前特别计数器值
     */
    int getCurrentStacksoffhand(Player player);

    /**
     * 重置特别计数器值。
     *
     * @param player 玩家实体
     */
    void resetStacks(Player player);

    /**
     * 获取效果键。
     *
     * @return 效果键
     */
    String getEffectKey();

    /**
     * 获取最大特别计数器值。
     *
     * @return 最大特别计数器值
     */
    int getMaxStacks();

    /**
     * 获取描述键（用于本地化）。
     *
     * @return 描述键
     */
    String getDescriptionKey();
}